package com.tbit.uqbike.client.pojo;

import cn.hutool.core.util.IdUtil;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * 发票开具记录
 *
 * @Author:BUGTian
 * @DATE: 2023/8/31
 */
@Data
@Accessors(chain = true)
public class InvoiceRecord {
    /**
     * 主键id
     */
    private Integer id;
    /**
     * 品牌id
     */
    private Integer brandId;
    /**
     * 用户id
     */
    private Integer userId;
    /**
     * 用户手机号
     */
    private String userPhone;
    /**
     * 订单类型(1:骑行订单 2:套餐订单)
     */
    private Integer orderType;
    /**
     * 抬头类型(1:单位，2:个人/非企业单位)
     */
    private Integer titleType;
    /**
     * 公司抬头
     */
    private String companyTitle;
    /**
     * 公司税号
     */
    private String companyTaxNumber;
    /**
     * 公司电话
     */
    private String companyPhone;
    /**
     * 公司地址
     */
    private String companyAddress;
    /**
     * 开户银行
     */
    private String bank;
    /**
     * 开户账号
     */
    private String account;
    /**
     * 邮箱
     */
    private String email;
    /**
     * 申请时间
     */
    private Date applyTime;
    /**
     * 开票时间
     */
    private Date invoiceTime;
    /**
     * 开票金额
     */
    private Double invoiceAmount;
    /**
     * 发票单号
     */
    private String invoiceNumber;
    /**
     * 发票地址
     */
    private String url;
    /**
     * 重开退票时间
     */
    private Date refundTime;
    /**
     * 发票状态
     * 0-已申请,待开票
     * 1-已开票
     * 2-已驳回
     * 3-重开待审核
     * 4-已废弃
     * 5-重开后待审核新票
     * 6-开票失败
     */
    private Integer status;
    /**
     * 备注
     */
    private String remark;
    /**
     * 绑定订单的数量
     */
    private Integer count;
    /**
     * 重开生命周期id
     */
    private String flowId;
    /**
     * 是否是重开发票（0：否，1：是）
     */
    private Integer isReopen;
    /**
     * 新发票id
     * */
    private Integer newId;

    /**
     * 开票类型：0-自动开票；1-手动开票
     * */
    private Integer invoiceOpenType;

    /**
     * 红字发票信息确认单id
     * */
    private String redChongVoteId;

    /**
     * 开票详情
     * */
    private String invoicingDetail;

    /**
     * 初始化生命周期id
     *
     * @param isReopen 是否是重开发票
     */
    public void initFlowId(Integer isReopen) {
        flowId = IdUtil.objectId();
        this.isReopen = isReopen;
    }


}
